Debian etch auf NSLU2 installieren
NSLU2 besorgen
Ich habe 69 EUR (mit Versant) für die NSLU2 bezahlt. Einfach mal nach NSLU2 googeln. Preisvergleich: http://www.billiger.de/show/produkt/3407931-LINKSYS-Network-Storage-Link-NSLU2.htm
Upgrade Modus (flashen)
Damit du dem NSLU2 ein neues Image aufdrücken kannst, musst du es zunächst in den Upgrade Modus bringen. Das geht so:
- das Slug ausschalten
- mit dem Netzwerk verbinden (ohne ist das NSLU2 praktisch nutzlos :smile:
- alle USB Geräte entfernen!
- Resetknopf drücken und gedrückt halten (mit einem spitzen Gegenstand)
- Powerknopf drücken und wieder loslassen (dabei den Resetknopf immernoch gedrückt halten)
- ca. 10Sek. warten, bis die Ready/Status LED ihre Farbe von orange zu rot wechselt, dann den Resetknopf loslassen
- Ready/Status LED sollte jetzt rot-grün blinken, das Slug ist im Upgrade Modus.
- mit upslug2 das neue Image flashen
weitere Hinweise:
- Upslug2 braucht Rootrechte!
- Das NSLU2 sollte direkt mit deinem Rechner verbunden sein, kein Router sollte dazwischen sein (Geht auch mit Switch, man sollte aber nicht WLan für das flaschen nutzen).
- Hat dein Rechner mehrere Netzwerkkarten, dann starte upslug2 mit: „-d NETDEVICE“, wobei NETDEVICE durch dein Netzwerkinterface ersetzt wird (z.B eth1).
- Wenn du mehrere NSLU2 inerhalb eines Netzwerkes gleichzeitig im Upgrade Modus hast, dann starte upslug2 mit dem Parameter „-t MAC“. Für MAC setzt du die Macdresse des gewünschten NSLU2 ein. Falls du diese nicht mittels arp herausfinden kannst, steht sie auch auf dem NSLU2 Gehäuse.
DebianSlug Firmware Installieren
- DebianSlug Firmware runterladen
- NSLU2 in Upgrade Modus bringen (Hilfe dazu siehe weiter oben)
tux@earth:~$ sudo apt-get install upslug2
tux@earth:~$ sudo upslug2 -d eth0 -i debianslug-3.10-beta.bin
- NSLU2 reboot
- externe Platte/SD-Karte anstöpseln
- als „root“ mit Passwort „opeNSLUg“ anmelden (via ssh)
- mit „fdisk“ die externe Platte partitionieren (swap nicht vergessen!)
- Dateisystem einrichten
Memory-Stick partitionieren/formatieren
- Partition mounten und in das Verzeichnis wechseln
- Netzwerk einrichten (insbesondere Gateway & Nameserver, sofern nicht per DHCP geschehen)
- debootstrap Image von einem Debian Mirror holen und entpacken; debootstrap Verzeichnis angeben
nslu2:~# cd /mnt
nslu2:/mnt# wget http://mirror.olnevhost.net/pub/debian/pool/main/d/debootstrap/debootstrap-udeb_0.3.3.3_arm.udeb
nslu2:/mnt# ar -x debootstrap-udeb_0.3.3.3_arm.udeb
nslu2:/mnt# tar xzvf data.tar.gz
nslu2:/mnt# export DEBOOTSTRAP_DIR=`pwd`/usr/lib/debootstrap
Debian etch Installieren
debootstrap mit deinem Lieblingsdebianmirror starten; Dieser Vorgang wird über eine Stunde und einige hundert MB Debianpakete aus dem Internet herunterladen. Wirklich Erfolgreich war der Vorgang nur, wenn anschließend „Base system installed successfully.“ in der letzten Zeile der Ausgabe steht. Fehlermeldungen landen in …/debootstrap/debootstrap.log
.
nslu2:/mnt# /mnt/usr/sbin/debootstrap --arch arm etch /mnt http://ftp.de.debian.org/debian/
Letze Vorbereitungen für das neue Debian System
einige Konfigdateien kopieren (bei Verwendung von dhcp nicht unbedingt notwendig)
nslu2:/mnt# cp /etc/resolv.conf etc/
nslu2:/mnt# cp /etc/hosts etc/
nslu2:/mnt# cp /etc/hostname etc/
nslu2:/mnt# cp /etc/network/interfaces etc/network/
Kernelmodule kopieren
nslu2:/mnt# mount -t proc proc /mnt/proc
die /etc/fstab im neuen Debiansystem erstellen (also in /mnt/etc/fstab)
nslu2:/mnt# vi etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda2 / ext3 relatime,errors=remount-ro 0 1
/dev/sda1 swap swap defaults 0 0
das Netzwerkmodul beim booten explizit laden lassen
nslu2:/mnt# echo "ixp400_eth dev_max_count=1" >> /mnt/etc/modules
Jetzt hast du ein halbwegs brauchbares Minimal Debian auf deiner externen Platte/SD-Karte. Du kannst es mit „chroot“ testen und darin weitere Pakete installieren. Wichtig ist das Paket: openssh-server. Anschließend kannst du das NSLU2 darauf vorbereiten, dass es demnächst von dem externen Medium bootet. Dazu alles von dem Medium umounten (proc nicht vergessen).
Neues Debian etch System einrichten
nslu2:/mnt# chroot /mnt /bin/bash
source.list
im neuen Debian System anpassen
linux/# vi /etc/apt/source.list
deb http://ftp.de.debian.org/debian etch main
deb http://ftp.de.debian.org/debian-security etch/updates main
Einige Pakete im neuen Debian System installieren (Nicht ssh vergessen)
linux/# apt-get install vim lynx nmap screen build-essential locales ssh mailx resolvconf
richtige locales setzen
linux/# dpkg-reconfigure locales
root Passwort ändern
linux/# passwd
Zeitzone Europe/Berlin einstellen
linux/# tzconfig
Damit beim nächsten mount kein Dateisystemcheck abläuft hilft folgendes
linux/# tune2fs -c 0 -i 0 /dev/sda2
das neue Debian System mit exit wieder verlassen.
linux/# exit
mit dem Befehl sagst du dem NSLU2, dass demnächst von sda1 gebootet werden soll
nslu2:/mnt# turnup disk -s5 /dev/sda2 -t ext3
Rauchtest
nslu2:/mnt# reboot
Ich habe mir gewundert, dass die LEDs nicht korrekt arbeiten (Ready hat nur orange geblinkt). Folgendes muss durchgeführt werden, damit auch die LEDs korrekt funktionieren. Das könnte man natürlich auch gleich beim kopieren von wichtigen dateien wie /etc/hosts etc. machen.
linux/# cp /initrd/sbin/leds /sbin/
linux/# cp /initrd/bin/beep /bin/
linux/# cp /initrd/etc/default/functions /etc/default/
linux/# mknod /dev/leds c 126 0
linux/# chmod 660 /dev/leds
linux/# cp /initrd/etc/init.d/zleds /initrd/etc/init.d/leds_startup /etc/init.d/
linux/# update-rc.d zleds defaults 99 05
linux/# update-rc.d leds_startup defaults 01